﻿' ******************************************************************************
' ** 
' **  Yahoo! Managed
' **  Written by Marius Häusler 2011
' **  It would be pleasant, if you contact me when you are using this code.
' **  Contact: YahooFinanceManaged@gmail.com
' **  Project Home: http://code.google.com/p/yahoo-finance-managed/
' **  
' ******************************************************************************
' **  
' **  Copyright 2011 Marius Häusler
' **  
' **  Licensed under the Apache License, Version 2.0 (the "License");
' **  you may not use this file except in compliance with the License.
' **  You may obtain a copy of the License at
' **  
' **    http://www.apache.org/licenses/LICENSE-2.0
' **  
' **  Unless required by applicable law or agreed to in writing, software
' **  distributed under the License is distributed on an "AS IS" BASIS,
' **  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' **  See the License for the specific language governing permissions and
' **  limitations under the License.
' ** 
' ******************************************************************************


Namespace YahooManaged.Weather


    Public Class WeatherFeed
        Inherits RSS.Feed

        Public Property TemperatureUnit() As DegreesUnit
        Public Property DistanceUnit() As DistanceUnit
        Public Property PressureUnit() As PressureUnit
        Public Property SpeedUnit() As DistanceUnit

        Public Property Wind() As WindInfo
        Public Property Atmosphere() As AtmosphereInfo
        Public Property Astronomy() As AstronomyInfo
        Public Property Location() As LocationInfo


        Public Sub New()
            MyBase.New()
            Me.Clear()
        End Sub
        Public Overloads Sub Clear()
            MyBase.Clear()
            Me.SetUnitSystem(True)
            Me.Wind = Nothing
            Me.Atmosphere = Nothing
            Me.Astronomy = Nothing
            Me.Location = Nothing
        End Sub
        Public Sub SetUnitSystem(ByVal metric As Boolean)
            If metric Then
                Me.TemperatureUnit = DegreesUnit.Celsius
                Me.DistanceUnit = DistanceUnit.Kilometer
                Me.PressureUnit = PressureUnit.Milibars
                Me.SpeedUnit = DistanceUnit.Kilometer
            Else
                Me.TemperatureUnit = DegreesUnit.Fahrenheit
                Me.DistanceUnit = DistanceUnit.Miles
                Me.PressureUnit = PressureUnit.PoundsPerSquareInch
                Me.SpeedUnit = DistanceUnit.Miles
            End If
        End Sub
        Public Function ItemOf(ByVal index As Integer) As WeatherFeedItem
            Return TryCast(MyBase.Items(index), WeatherFeedItem)
        End Function




    End Class



    Public Class WeatherFeedItem
        Inherits RSS.FeedItem

        Public Property ActualCondition() As ActualCondition
        Public Property ForecastConditions() As List(Of Forecast)
        Public Property Coordinates() As Geo.Coordinates

        Public Sub New()
            Me.ActualCondition = New ActualCondition
            Me.ForecastConditions = New List(Of Forecast)
            Me.Coordinates = New Geo.Coordinates
        End Sub

    End Class


End Namespace
